/**
 * VUEshop
 * ============================================================================
 * * 版权所有 2015-2027 深圳搜豹网络科技有限公司，并保留所有权利。
 * 网站地址: http://www.vueshop.com.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * $Author: 沈小白 2020-07-22 $
 */
import '.env' 
import common from "../common/common.js";
import store from "../store/index.js";
let host,post,imgUrl,apiUrl;
let BASE_API=process.uniEnv.BASE_API;
let BASE_HOST=process.uniEnv.BASE_HOST;
let BASE_IMG=process.uniEnv.BASE_IMG_URL;
host=BASE_API;
post=BASE_HOST;

var imgBeforeUrl =  "/static/images/"//图片相对路径
var apiBeforeUrl =  "/api"//api接口路径
console.log(process.uniEnv  );
function getApiUrl(){
	if(post == ''){
		return host + apiBeforeUrl
	}else{
		return host + ":" + post + apiBeforeUrl
	}
}

function getImageUrl(){
	if(post == ''){
		return BASE_IMG + imgBeforeUrl
	}else{
		return hoBASE_IMGst + ":" + post + imgBeforeUrl
	}
}

// if(process.env.NODE_ENV === 'development'){
// 	/*测试h5的测试环境  npm run serve*/ 
// 	//#ifdef H5 || APP-PLUS ||  MP
// 		host = "//jmobile.tpsns.com";
// 		post = ''
// 	//#endif
// 	//#ifndef H5 
// 		host = "https://jmobile.tpsns.com";
// 		post = ''
// 		console.log("大于")
// 	//#endif
// }else if(process.env.NODE_ENV === 'production'){
// 	/*测试h5的测试环境  npm run build:h5*/ 
// 	// #ifdef APP-PLUS || H5 || MP
// 		host = "//jmobile.tpsns.com";
// 		post = ''
// 	// #endif
// 	/*测试h5的测试环境  npm run build:custom test-h5*/ 
// 	// #ifdef TEST-H5
// 		host = "http://192.168.0.250";
// 		post = '8882'
// 	// #endif
// }

imgUrl = getImageUrl()
apiUrl = getApiUrl()
console.log("接口地址为:",apiUrl);
console.log("图片地址为:",imgUrl);
const appName='Tpshop多商户商城'
/*延时获取token*/
function getToken(url){
	const token_type="bearer";
	let token
	if(url=="/mall/logout"){
		// 退出登录不需要 token_type
		token=store.state.token;;
		token=token.split(token_type)[1]
		
		// console.log(token)
		
	}else{
		token=store.state.token;
		// console.log(token)
	}
	return token;
}

export  function request(url,method,data,header={}){
    return new Promise((resolve,reject)=>{
		// uni.showLoading({
		//     title:'加载中'
		// })
       uni.request({
		   	// #ifdef  H5 
			url:'/api'+url,
			// #endif
			// #ifndef H5
			url: apiUrl + url,
			// #endif
			data,
			method,
			header:{
				'content-type': 'application/json' ,// 默认值
				'Authorization':getToken(url)
			},
			success:function(res){
				// uni.hideLoading();
				if(res.statusCode!=200){
					if (res.statusCode == 400 ||res.statusCode == 401 || res.statusCode == 402) {  //token错误 清除登录信息
						//重新登录
						showError("请求",url)
						showError('信息',res)
						// store.state.hasLogin=false;
						// store.state.user="";
						common.toast("none","重新登录",3000)
						setTimeout(()=>{
							uni.clearStorage()
							uni.clearStorageSync()
							store.commit("getLogout")
							common.islogin()
						},3000)
						// reject(res)
						return false
					}
					
					if(res.statusCode==501){
						var showMsg = (typeof res.data.msg == 'string') ? res.data.msg : '数据格式错误';
						showError(`${showMsg}`,false)
						reject(res)
						return false
					}
					var showMsg = (typeof res.data.msg == 'string') ? res.data.msg : '数据格式错误';
					showError(`${showMsg}`,false)
					reject(res)
					return false
					
					
				}else{
					if(res.data.status == -10000){
						/*清除所有缓存*/ 
						store.commit("getLogout")
						uni.clearStorageSync()
						uni.clearStorage()
						common.toast("none","token失效重新登录",3000)
						setTimeout(()=>{
							common.islogin()
						},3000)
						
						return
					}
					// 未设置支付密码
					if(res.data.status==-10020){
						let time=3000
						common.toast("none","请先设置支付密码",time)
						let url="/pages/user/userinfo_edit/userinfo_edit?type=paypwd";
						navigate(url,time)
						return
					}
					/*短信验证 错误验证  改手机号不存在*/ 
					if(res.data.status==-10010){
						resolve(res.data)
					}
					if(res.data.status<1&&res.data.msg){
						showError(res.data.msg,false)
						reject(res)
						return false;
					}

					resolve(res.data)
				}
				
				
			
			},
			fail:function(res){
			},
			complete:function(){
				// uni.hideLoading()
			}
        })
    })
}
function showError(content,isBack){
	uni.showModal({
	    title:"",
	    content: content,
		showCancel:false,
	    success: function (res) {
	        if (res.confirm) {
	            console.log('用户点击确定');
				if(isBack==true){
					uni.navigateBack({
						delta:1
					})
				}
	        } else if (res.cancel) {
	            console.log('用户点击取消');
	        }
	    }
	});
}
function navigate(url,time){
	setTimeout(()=>{
		uni.navigateTo({
			url:url,
		})
	},time)
}
host=apiUrl
export default {
	host,
	appName,
	imgUrl
}
